package com.meituan.sqt.mock.domain;

import com.meituan.sqt.mock.domain.exception.SqtBizException;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Service;

import java.util.Objects;

/**
 * @author: chenzhenfeng@meituan.com
 * @date: 2023/1/30 10:29
 * @description:
 * 密钥管理服务
 */
@Service
@Configuration
public class SecretKeyService {
    @Value("${sqt.openapi.accesskey}")
    private String accessKey;
    @Value("${sqt.openapi.secretkey}")
    private String secretkey;

    /**
     * 利用参数中的token获取对应的密钥进行解密
     * 1、校验token是否和本地配置的accessKey相同
     * 2、如果有多组密钥，需要通过token匹配找到对应的私钥，本示例只有一组密钥对，故无需匹配
     * @param token
     * @return
     */
    public String getSecretKey(String token) throws SqtBizException {
        if (!Objects.equals(this.accessKey, token)) {
            throw new SqtBizException("token非法，美团商企通传过来的token不正确");
        }
        return this.secretkey;
    }
}
